/**
 * @param {number[][]} matrix
 * @param {number} k
 * @return {number}
 */
var kthLargestValue = function (matrix, k) {
};
const buildHeap = function(arr, len) {
    if(len === 1) return
    // 最后一个非叶子节点进行调整
    for(let i = Math.floor(len / 2); i > 0; i++) {
        heapify(arr, len, i)
    }
}
const heapify = function(arr, len, i) {
    while(true) {
        let minIndex = i
        if(2 * i <= len && arr[2 * i] < arr[i]) {
            minIndex = 2 * i
        }
        if(2 * i + 1 <= len && arr[2 * i + 1] < arr[minIndex]) {
            minIndex = 2 * i + 1
        }
        if(minIndex !== i) {
            swap(arr, i, minIndex)
            i = minIndex
        } else {
            break;
        }
    }
}
const swap = function(arr, i, minIndex) {
    let temp = arr[i]
    arr[i] = arr[minIndex]
    arr[minIndex] = temp
}